#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define N 26
int chnum[N];
char str[200];

int str_len = 0;

void statistic();
void showchnum();

void statistic()
{
    int i = 0;

    for(i = 0; i < str_len; i++)
    {
        chnum[str[i] - 'a']++;
    }
}

void showchnum()
{
    int i = 0;
    for(i = 0; i < N; i++)
    {
        printf("%c: %d\t", i+'a', chnum[i]);
    }
    printf("\r\n");
}

void showstr(char str[200])
{
    int i = 0;

    for(i = 0; i < str_len; i++)
    {
        printf("%c", str[i]);
    }
    printf("\r\n");
}

//第k层
void fn(int k, char result[200])
{
    int i = 0;

    if(k == str_len)
    {
        showstr(result);
    }

    for(i = 0; i < N; i++)
    {
        if(chnum[i] != 0)
        {
            result[k] = 'a' + i;
            chnum[i]--;
            fn(k+1, result);
            chnum[i]++;
        }
    }
}

void process()
{
    char ch[200];
    str_len = strlen(str);

    statistic();

    //showchnum();

    fn(0, ch);
}

int main()
{
    //freopen("bin\\debug\\in.txt", "r", stdin);
    //freopen("bin\\debug\\out.txt", "w", stdout);

    scanf("%s", str);

    process();



    return 0;
}
